Packet switched or network communications can be subject to conditions where data transfer may be jammed by some source. This is true, for example, of wireless networks in which a radio jamming device may be used to send out a strong noise signal at one or more radio frequencies used by a network so as to hinder or prevent communication between a sender and/or receiver unit and one or more nodes (e.g. cellular towers) of a network. The legality of jamming depends upon the jurisdiction and such factors as whether it is being carried out by a public authority or a civilian organization or person, the specific purpose of the jamming, and the location where the jamming occurs (e.g. within a prison, hospital, school, church, theatre or privately owned building). However, from the standpoint of a user of the network, an effort will be made to thwart any jamming that may be present in order to achieve successful communication.
From the standpoint of a program using the internet protocol suite (TCP/IP) and similar network protocols, jamming appears to be dropped packets or datagrams and some additional corruption of the data during transfer. Many existing communications protocols like TCP/IP already suffer from transfer rate limitations due to network latency, traffic congestion and dropped datagrams or packets. The existence of jamming tends to worsen the problem of dropped datagrams or packets as well as losses due to data corruption, and thus slows the effective transfer of data over the network.
In U.S. Pat. No. 8,310,920 to Goldfein et al., a system and method are disclosed that accelerate data transfers over a network even in the face of high latency and congestion. The sender will send as much data as it can as rapidly as possible so as to make maximum use of the available bandwidth. This is in contrast to any specific amount of bandwidth that the network or any of the network's nodes might attempt to allocate to any given sender. The sender sends datagrams continuously (with only small amounts of inter-datagram delay between contiguous datagrams) until the source of data is exhausted or until the sender is paused by the receiver. The sender thereby floods the transmission channel with traffic, taking all available bandwidth, with the aim of keeping the channel as full of data as possible so that there is always data ready for immediate acceptance by the receiver, even if the extra burden results in some dropped data that must subsequently be resent. In one embodiment, the '920 patent describes a protocol that employs fault-tolerant coding of chapters of datagrams, such as Reed-Solomon or similar error-correcting codes, to build in a level of redundancy in each encoded chapter, so that any lost (missing or corrupt) datagrams in a chapter, up to a specified loss rate, can be recovered from those encoded datagrams that do successfully arrive at the receiver end. This ability to reconstruct missing datagrams from a subset of encoded datagrams of a chapter minimizes the need for resending datagrams.
In addition to the data transmission channel, a separate feedback channel is also established between sender and receiver for reporting of synchronization messages (SYNs), acknowledgement messages (ACKs) and negative acknowledgments (NAKs) by the receiver, so the sender can determine network latency and the existence of any lost or corrupted datagrams that need to be resent. Periodic SYNs, as well as ACKs that supplement, replace or incorporate such SYNs once data transmission has begun, include a timestamp, and changes in timestamp differences are used by the sender as a measure of overall latency and network congestion to serve as one basis for tuning the data transmission rate. The sender tries to optimize the use of the available bandwidth capacity as defined by the bandwidth delay product. An optimum rate is defined as the highest rate the data can be transmitted and be successfully received and processed by the receiver with minimum data loss. The content of NAKs and ACKs allow the sender to determine the datagram loss rate in the data channel to serve as another basis for tuning the data transmission rate. Too little loss (or corruption) implies that datagrams can be sent more frequently, while too much loss results in too much retransmission. Hence an optimum data rate can be maintained by the sender setting an upper bound to the datagram loss rate.
The '920 patent's error-correcting-capable protocol makes use of a method described in U.S. Pat. No. 8,078,944 to Cousins which involves transforming groups of datagrams, called cohorts, using Galois field operations and a Vandermonde generator matrix to derive corresponding groups of output datagrams, called chapters, that have sufficient redundancy embedded within the reformulated data so that original data is recoverable even when less than all elements of a chapter are available. Specifically, when a cohort of W input datagrams are transformed into a chapter of H output datagrams, where H≧W, then all W original datagram files are recoverable from only W received datagrams of a chapter. Thus, provided not more than (H−W) datagrams of a chapter are lost or corrupted during transmission, the entire cohort of original data will be recovered. However, if the datagram loss rate is great enough such that fewer then W datagrams of a chapter are available, then none of the original data, not even small portions, will be recoverable.
In spite of the overall improvement in data transfer provided by the '920 patent's error-correcting-capable protocol, the possible existence of jamming conditions invites further enhancements to take account of the increase in data corruption and datagram loss rates that could otherwise prevent or delay datagram recovery by the receiver and add to the required buffering overhead.